/**
 * 1654. 出现次数最多的字母
 * 给定一个字符串str,现在你需要统计出现次数最多的字母。返回这个字母出现的次数。
 * https://www.lintcode.com/problem/most-frequently-appearing-letters/description?_from=cat
 *
 * 样例
 * 样例1
 *
 * 输入: str="ABCabcA"
 * 输出: 2
 * 解释:
 * A出现了2次，B出现了1次，C出现了1次，a出现了1次，b出现了1次，c出现了1次，A出现的次数最多，所以返回2。
 * 样例2
 *
 * 输入: str="abca"
 * 输出: 2
 * 解释:
 * a 出现了2次，b和c都只出现了1次
 * 所以返回 2
 * 注意事项
 * 字母中只可能会出现大写字母或者小写字母。
 * 字符串长度不超过100000
 * @author jeymingwu
 * @date 2019/9/30 17:21
 */
public class L1654_Most_Frequently_Appearing_Letters {

    /**
     * @param str: the str
     * @return: the sum that the letter appears the most
     */
    public int mostFrequentlyAppearingLetters(String str) {
        // Write your code here.
        int max = 0;
        int[] nums = new int[128];
        for (int i = 0; i < str.length(); ++i) {
            nums[str.charAt(i)]++;
        }
        for (int i = 0; i < str.length(); ++i) {
            if (max < nums[str.charAt(i)]) {
                max = nums[str.charAt(i)];
            }
        }
        return max;
    }
}
